Skip to main content

Gorm - Get All Data

Melanjutkan dari tulisan sebelumnya yaitu koneksi database postgresql, pada tulisan kali ini, akan dijelaskan bagaimana cara untuk mengambil semua data dari table tertentu.

Persiapan​

  1. Table dengan beberapa data, disini menggunakan articles dengan data sebagai berikut ini :

picture 1

Deklarasi Model​

Buat file dengan struktur seperti ini models/article.go, untuk mendeklarisikan struktur dari data articles yang ingin didapatkan :

package models

type Article struct {
ID string `gorm:"primaryKey"`
Name string
Content string
AuthorName string
}

Buat Repository​

Buat file dengan struktur seperti ini repository/articles.go, yang berisi fungsi untuk mengelola data articles :

package repository

import (
"example/hello/databases"
"example/hello/models"
)

func GetAllArticles() ([]models.Article, error) {
db, err := databases.SetConnection()

if err != nil {
return nil, err
}

var articles []models.Article

if err := db.Find(&articles).Error; err != nil {
return nil, err
}

return articles, nil
}

Finalisasi​

Setelah 2 hal di atas selesai, selanjutnya buat logic untuk menampilkan seluruh data articles pada log aplikasi, dengan memanfaatkan repository tadi, seperti berikut ini :

import (
...

"example/hello/repository"
"fmt"

...
)

func main() {

...

//show all articles
articles, err := repository.GetAllArticles()
if err != nil {
fmt.Println("Failed get articles: ", err)
return
}

fmt.Println("Articles in db are : ")
for _, article := range articles {
fmt.Printf(
"ID: %s, name: %s, content: %s, authorName: %s \n",
article.ID,
article.Name,
article.Content,
article.AuthorName,
)
}

...
}

Jika berhasil, pada log terminal anda, terdapat deretan data articles, seperti berikut ini :

picture 2

Referensi :

Gorm - Declaring Model

Gorm - Query